package br.com.boreo.boreoapp_orcamento.dao;

import java.text.SimpleDateFormat;
import java.util.ArrayList;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import br.com.boreo.boreoapp_orcamento.model.Vendas;

public class VendasDAO {
	private BoreoAppOrcamentoDAO boreodao;
	SimpleDateFormat formatadorData = new SimpleDateFormat("yyyy-MM-dd");
	/*Dados da tabela*/
	private static final String NOME_TABELA    = "vendas";
	private static final String ID             = "_id";
	private static final String ID_CLIENTE     = "id_cliente";
	private static final String ID_FORMAPAG    = "id_formapag";
	private static final String NUMERO         = "numero";
	private static final String FATURA_OPER    = "fatura_oper";
	private static final String FATURA_NRO     = "fatura_nro";
	private static final String ENT_FUTURA     = "ent_futura";
	private static final String VALOR          = "valor";
	private static final String PED_CLI        = "ped_cli";
	private static final String REGIAO         = "regiao";
	private static final String HORARIO        = "horario";
	private static final String RESPONSAVEL    = "responsavel";
	private static final String STATUS         = "status";
	private static final String DUPLICATA      = "duplicata";
	private static final String RETORNO_OPER   = "retorno_oper";
	private static final String RETORNO_NRNF   = "retorno_nrnf";
	private static final String NUMERO_RETORNO = "numero_retorno";
	private static final String COD_MOVCXA     = "cod_movcxa";
	private static final String VALOR_FRETE    = "valor_frete";
	private static final String VALOR_COMIS    = "valor_comis";
	private static final String VL_CLI         = "vl_cli";
	private static final String VINCULO_ZN     = "vinculo_zn";
	private static final String CIMENTO        = "cimento";
	private static final String VALOR_CUSTO    = "valor_custo";
	private static final String ID_USUARIO     = "id_usuario";
	private static final String ID_USUARIO_LIB = "id_usuario_lib";
	private static final String ID_TRANSP      = "id_transp";
	private static final String ID_OBRA        = "id_obra";
	private static final String OBS            = "obs";
	private static final String NEGOCIACAO     = "negociacao";
	private static final String ICMS_BASE      = "icms_base";
	private static final String ICMS_VALOR     = "icms_valor";
	private static final String ICMS_BASE_ST   = "icms_base_st";
	private static final String ICMS_VALOR_ST  = "icms_valor_st";
	private static final String VL_PRODUTOS    = "vl_produtos";
	private static final String VL_FRETE       = "vl_frete";
	private static final String VL_SEGURO      = "vl_seguro";
	private static final String VL_IPI         = "vl_ipi";
	private static final String VL_BASEIPI     = "vl_baseipi";
	private static final String NF_FRETE       = "nf_frete";
	private static final String ID_FORNEC      = "id_fornec";
	private static final String ID_NF_ORIGINAL = "id_nf_original";
	private static final String ID_NF_ENTRADA  = "id_nf_entrada";
	private static final String ID_VENDA_PAI   = "id_venda_pai";
	private static final String ID_OPERACAO    = "id_operacao";
	private static final String CFOP           = "cfop";
	private static final String NATUREZAOPER   = "naturezaoper";
	private static final String DEST_NOME      = "dest_nome";
	private static final String DEST_PESSOA    = "dest_pessoa";
	private static final String DEST_DOC       = "dest_doc";
	private static final String DEST_END       = "dest_end";
	private static final String DEST_CIDADE    = "dest_cidade";
	private static final String DEST_BAIRRO    = "dest_bairro";
	private static final String DEST_CEP       = "dest_cep";
	private static final String DEST_UF        = "dest_uf";
	private static final String DEST_IE        = "dest_ie";
	private static final String DEST_ENTREGA   = "dest_entrega";
	private static final String DEST_FONE      = "dest_fone";
	private static final String TRANS_FRETE    = "trans_frete";
	private static final String TRANS_ESPEC    = "trans_espec";
	private static final String TRANS_QTD      = "trans_qtd";
	private static final String TIPO_ES        = "tipo_es";
	private static final String AJUDANTE       = "ajudante";
	private static final String ID_CLIDEPEND   = "id_clidepend";
	private static final String RESERVA_BOX    = "reserva_box";
	private static final String TIMESTAMP      = "timestamp";
	private static final String ID_LOJA        = "id_loja";
	private static final String ID_LOJAORI     = "id_lojaori";
	private static final String EMISSAO        = "emissao";
	private static final String FATURA_DATA    = "fatura_data";
	private static final String DATA_PREV      = "data_prev";
	private static final String DATA_SAIDA     = "data_saida";
	private static final String DT_CANCELA     = "dt_cancela";
	private static final String VL_PIS         = "vl_pis";
	private static final String VL_COFINS      = "vl_cofins";
	private static final String DEST_NRO       = "dest_nro";
	private static final String DEST_COMPL     = "dest_compl";
	private static final String PROT_ID        = "prot_id";
	private static final String CHAVE          = "chave";
	private static final String STATUS_NFE     = "status_nfe";
	private static final String TIPO_FRETE     = "tipo_frete";
	private static final String ID_UF          = "id_uf";
	private static final String ID_MUNICIP     = "id_municip";
	private static final String DEST_MAIL      = "dest_mail";
	private static final String ENTREGA        = "entrega";
	private static final String ID_TRANSF      = "id_transf";
	private static final String COO            = "coo";
	private static final String VL_DESPADU     = "vl_despadu";
	private static final String VL_II          = "vl_ii";
	private static final String ID_FRETE       = "id_frete";
	private static final String QTD_FRETE      = "qtd_frete";
	private static final String VL_OUTRAS      = "vl_outras";
	private static final String SINCRONIZADO   = "sincronizado";

	public VendasDAO(Context context) {
		boreodao = BoreoAppOrcamentoDAO.getInstance(context);
	}

	public long inserir(int id_cliente, int id_formapag, String numero, String fatura_oper, String fatura_nro, double ent_futura, 
			double valor, String ped_cli, String regiao, String horario, String responsavel, String status, String duplicata, 
			String retorno_oper, String retorno_nrnf, String numero_retorno, String cod_movcxa, double valor_frete, double valor_comis,
			double vl_cli, String vinculo_zn, double cimento, double valor_custo, int id_usuario, int id_usuario_lib, int id_transp, int id_obra, 
			String obs, String negociacao, double icms_base, double icms_valor, double icms_base_st, double icms_valor_st, double vl_produtos, double vl_frete, 
			double vl_seguro, double vl_outras, double vl_ipi, double vl_baseipi, String nf_frete, int id_fornec, int id_nf_original, int id_nf_entrada, int id_venda_pai,
			int id_operacao, String cfop, String naturezaoper, String dest_nome, String dest_pessoa, String dest_doc, String dest_end, String dest_cidade, 
			String dest_bairro, String dest_cep, String dest_uf, String dest_ie, String dest_entrega, String dest_fone, String trans_frete, String trans_espec, 
			String trans_qtd, String tipo_es, String ajudante, int id_clidepend, String reserva_box,  String timestamp, int id_loja, int id_lojaori,
			String emissao, String fatura_data, String data_prev, String data_saida,String dt_cancela, double vl_pis, double vl_cofins, String dest_nro,
			String dest_compl, String prot_id, String chave, String status_nfe, String tipo_frete, int id_uf, int id_municip, String dest_mail, String entrega,
			int id_transf, String coo, double vl_despadu, double vl_ii, int id_frete, double qtd_frete,  int sincronizado){


		ContentValues valores = new ContentValues();
		valores.put(ID_CLIENTE, id_cliente);
		valores.put(ID_FORMAPAG, id_formapag);
		valores.put(NUMERO, numero);
		valores.put(FATURA_OPER, fatura_oper);
		valores.put(FATURA_NRO, fatura_nro);
		valores.put(ENT_FUTURA, ent_futura);
		valores.put(VALOR, valor);
		valores.put(PED_CLI, ped_cli);
		valores.put(REGIAO, regiao);
		valores.put(HORARIO, horario);
		valores.put(RESPONSAVEL, responsavel);
		valores.put(STATUS, status);
		valores.put(DUPLICATA, duplicata);
		valores.put(RETORNO_OPER, retorno_oper);
		valores.put(RETORNO_NRNF, retorno_nrnf);
		valores.put(NUMERO_RETORNO, numero_retorno);
		valores.put(COD_MOVCXA, cod_movcxa);
		valores.put(VALOR_FRETE, valor_frete);
		valores.put(VALOR_COMIS, valor_comis);
		valores.put(VL_CLI, vl_cli);
		valores.put(VINCULO_ZN, vinculo_zn);
		valores.put(CIMENTO, cimento);
		valores.put(VALOR_CUSTO, valor_custo);
		valores.put(ID_USUARIO, id_usuario);
		valores.put(ID_USUARIO_LIB, id_usuario_lib);
		valores.put(ID_TRANSP, id_transp);
		valores.put(ID_OBRA, id_obra);
		valores.put(OBS, obs);
		valores.put(NEGOCIACAO, negociacao);
		valores.put(ICMS_BASE, icms_base);
		valores.put(ICMS_VALOR, icms_valor);
		valores.put(ICMS_BASE_ST, icms_base_st);
		valores.put(ICMS_VALOR_ST, icms_valor_st);
		valores.put(VL_PRODUTOS, vl_produtos);
		valores.put(VL_FRETE, vl_frete);
		valores.put(VL_SEGURO, vl_seguro);
		valores.put(VL_OUTRAS, vl_outras);
		valores.put(VL_IPI, vl_ipi);
		valores.put(VL_BASEIPI, vl_baseipi);
		valores.put(NF_FRETE, nf_frete);
		valores.put(ID_FORNEC, id_fornec);
		valores.put(ID_NF_ORIGINAL, id_nf_original);
		valores.put(ID_NF_ENTRADA, id_nf_entrada);
		valores.put(ID_VENDA_PAI, id_venda_pai);
		valores.put(ID_OPERACAO, id_operacao);
		valores.put(CFOP, cfop);
		valores.put(NATUREZAOPER, naturezaoper);
		valores.put(DEST_NOME, dest_nome);
		valores.put(DEST_PESSOA, dest_pessoa);
		valores.put(DEST_DOC, dest_doc);
		valores.put(DEST_END, dest_end);
		valores.put(DEST_CIDADE, dest_cidade);
		valores.put(DEST_BAIRRO, dest_bairro);
		valores.put(DEST_CEP, dest_cep);
		valores.put(DEST_UF, dest_uf);
		valores.put(DEST_IE, dest_ie);
		valores.put(DEST_ENTREGA, dest_entrega);
		valores.put(DEST_FONE, dest_fone);
		valores.put(TRANS_FRETE, trans_frete);
		valores.put(TRANS_ESPEC, trans_espec);
		valores.put(TRANS_QTD, trans_qtd);
		valores.put(TIPO_ES, tipo_es);
		valores.put(AJUDANTE, ajudante);
		valores.put(ID_CLIDEPEND, id_clidepend);
		valores.put(RESERVA_BOX, reserva_box);
		valores.put(TIMESTAMP, timestamp);
		valores.put(ID_LOJA, id_loja);
		valores.put(ID_LOJAORI, id_lojaori);
		valores.put(EMISSAO,emissao);
		valores.put(FATURA_DATA, fatura_data);
		valores.put(DATA_PREV, data_prev);
		valores.put(DATA_SAIDA, data_saida);
		valores.put(DT_CANCELA, dt_cancela);
		valores.put(VL_PIS, vl_pis);
		valores.put(VL_COFINS, vl_cofins);
		valores.put(DEST_NRO, dest_nro);
		valores.put(DEST_COMPL, dest_compl);
		valores.put(PROT_ID, prot_id);
		valores.put(CHAVE, chave);
		valores.put(STATUS_NFE, status_nfe);
		valores.put(TIPO_FRETE, tipo_frete);
		valores.put(ID_UF, id_uf);
		valores.put(ID_MUNICIP, id_municip);
		valores.put(DEST_MAIL, dest_mail);
		valores.put(ENTREGA, entrega);
		valores.put(ID_TRANSF, id_transf);
		valores.put(COO, coo);
		valores.put(VL_DESPADU, vl_despadu);
		valores.put(VL_II, vl_ii);
		valores.put(ID_FRETE, id_frete);
		valores.put(QTD_FRETE, qtd_frete);
		valores.put(SINCRONIZADO, sincronizado);
		long retorno = boreodao.getWritableDatabase().insert(NOME_TABELA, null, valores);
		boreodao.close();
		return retorno;
	}

	public long inserirComId(int id, int id_cliente, int id_formapag, String numero, String fatura_oper, String fatura_nro, double ent_futura, 
			double valor, String ped_cli, String regiao, String horario, String responsavel, String status, String duplicata, 
			String retorno_oper, String retorno_nrnf, String numero_retorno, String cod_movcxa, double valor_frete, double valor_comis,
			double vl_cli, String vinculo_zn, double cimento, double valor_custo, int id_usuario, int id_usuario_lib, int id_transp, int id_obra, 
			String obs, String negociacao, double icms_base, double icms_valor, double icms_base_st, double icms_valor_st, double vl_produtos, double vl_frete, 
			double vl_seguro, double vl_outras, double vl_ipi, double vl_baseipi, String nf_frete, int id_fornec, int id_nf_original, int id_nf_entrada, int id_venda_pai,
			int id_operacao, String cfop, String naturezaoper, String dest_nome, String dest_pessoa, String dest_doc, String dest_end, String dest_cidade, 
			String dest_bairro, String dest_cep, String dest_uf, String dest_ie, String dest_entrega, String dest_fone, String trans_frete, String trans_espec, 
			String trans_qtd, String tipo_es, String ajudante, int id_clidepend, String reserva_box,  String timestamp, int id_loja, int id_lojaori,
			String emissao, String fatura_data, String data_prev, String data_saida,String dt_cancela, double vl_pis, double vl_cofins, String dest_nro,
			String dest_compl, String prot_id, String chave, String status_nfe, String tipo_frete, int id_uf, int id_municip, String dest_mail, String entrega,
			int id_transf, String coo, double vl_despadu, double vl_ii, int id_frete, double qtd_frete,  int sincronizado) {
		ContentValues valores = new ContentValues();
		valores.put(ID, id);
		valores.put(ID_CLIENTE, id_cliente);
		valores.put(ID_FORMAPAG, id_formapag);
		valores.put(NUMERO, numero);
		valores.put(FATURA_OPER, fatura_oper);
		valores.put(FATURA_NRO, fatura_nro);
		valores.put(ENT_FUTURA, ent_futura);
		valores.put(VALOR, valor);
		valores.put(PED_CLI, ped_cli);
		valores.put(REGIAO, regiao);
		valores.put(HORARIO, horario);
		valores.put(RESPONSAVEL, responsavel);
		valores.put(STATUS, status);
		valores.put(DUPLICATA, duplicata);
		valores.put(RETORNO_OPER, retorno_oper);
		valores.put(RETORNO_NRNF, retorno_nrnf);
		valores.put(NUMERO_RETORNO, numero_retorno);
		valores.put(COD_MOVCXA, cod_movcxa);
		valores.put(VALOR_FRETE, valor_frete);
		valores.put(VALOR_COMIS, valor_comis);
		valores.put(VL_CLI, vl_cli);
		valores.put(VINCULO_ZN, vinculo_zn);
		valores.put(CIMENTO, cimento);
		valores.put(VALOR_CUSTO, valor_custo);
		valores.put(ID_USUARIO, id_usuario);
		valores.put(ID_USUARIO_LIB, id_usuario_lib);
		valores.put(ID_TRANSP, id_transp);
		valores.put(ID_OBRA, id_obra);
		valores.put(OBS, obs);
		valores.put(NEGOCIACAO, negociacao);
		valores.put(ICMS_BASE, icms_base);
		valores.put(ICMS_VALOR, icms_valor);
		valores.put(ICMS_BASE_ST, icms_base_st);
		valores.put(ICMS_VALOR_ST, icms_valor_st);
		valores.put(VL_PRODUTOS, vl_produtos);
		valores.put(VL_FRETE, vl_frete);
		valores.put(VL_SEGURO, vl_seguro);
		valores.put(VL_OUTRAS, vl_outras);
		valores.put(VL_IPI, vl_ipi);
		valores.put(VL_BASEIPI, vl_baseipi);
		valores.put(NF_FRETE, nf_frete);
		valores.put(ID_FORNEC, id_fornec);
		valores.put(ID_NF_ORIGINAL, id_nf_original);
		valores.put(ID_NF_ENTRADA, id_nf_entrada);
		valores.put(ID_VENDA_PAI, id_venda_pai);
		valores.put(ID_OPERACAO, id_operacao);
		valores.put(CFOP, cfop);
		valores.put(NATUREZAOPER, naturezaoper);
		valores.put(DEST_NOME, dest_nome);
		valores.put(DEST_PESSOA, dest_pessoa);
		valores.put(DEST_DOC, dest_doc);
		valores.put(DEST_END, dest_end);
		valores.put(DEST_CIDADE, dest_cidade);
		valores.put(DEST_BAIRRO, dest_bairro);
		valores.put(DEST_CEP, dest_cep);
		valores.put(DEST_UF, dest_uf);
		valores.put(DEST_IE, dest_ie);
		valores.put(DEST_ENTREGA, dest_entrega);
		valores.put(DEST_FONE, dest_fone);
		valores.put(TRANS_FRETE, trans_frete);
		valores.put(TRANS_ESPEC, trans_espec);
		valores.put(TRANS_QTD, trans_qtd);
		valores.put(TIPO_ES, tipo_es);
		valores.put(AJUDANTE, ajudante);
		valores.put(ID_CLIDEPEND, id_clidepend);
		valores.put(RESERVA_BOX, reserva_box);
		valores.put(TIMESTAMP, timestamp);
		valores.put(ID_LOJA, id_loja);
		valores.put(ID_LOJAORI, id_lojaori);
		valores.put(EMISSAO, emissao);
		valores.put(FATURA_DATA, fatura_data);
		valores.put(DATA_PREV, data_prev);
		valores.put(DATA_SAIDA, data_saida);
		valores.put(DT_CANCELA, dt_cancela);
		valores.put(VL_PIS, vl_pis);
		valores.put(VL_COFINS, vl_cofins);
		valores.put(DEST_NRO, dest_nro);
		valores.put(DEST_COMPL, dest_compl);
		valores.put(PROT_ID, prot_id);
		valores.put(CHAVE, chave);
		valores.put(STATUS_NFE, status_nfe);
		valores.put(TIPO_FRETE, tipo_frete);
		valores.put(ID_UF, id_uf);
		valores.put(ID_MUNICIP, id_municip);
		valores.put(DEST_MAIL, dest_mail);
		valores.put(ENTREGA, entrega);
		valores.put(ID_TRANSF, id_transf);
		valores.put(COO, coo);
		valores.put(VL_DESPADU, vl_despadu);
		valores.put(VL_II, vl_ii);
		valores.put(ID_FRETE, id_frete);
		valores.put(QTD_FRETE, qtd_frete);
		valores.put(SINCRONIZADO, sincronizado);

		long retorno = boreodao.getWritableDatabase().insert(NOME_TABELA, null, valores);
		boreodao.close();
		return retorno;
	}

	public long alterar(int id, int id_cliente, int id_formapag, String numero, String fatura_oper, String fatura_nro, double ent_futura, 
			double valor, String ped_cli, String regiao, String horario, String responsavel, String status, String duplicata, 
			String retorno_oper, String retorno_nrnf, String numero_retorno, String cod_movcxa, double valor_frete, double valor_comis,
			double vl_cli, String vinculo_zn, double cimento, double valor_custo, int id_usuario, int id_usuario_lib, int id_transp, int id_obra, 
			String obs, String negociacao, double icms_base, double icms_valor, double icms_base_st, double icms_valor_st, double vl_produtos, double vl_frete, 
			double vl_seguro, double vl_outras, double vl_ipi, double vl_baseipi, String nf_frete, int id_fornec, int id_nf_original, int id_nf_entrada, int id_venda_pai,
			int id_operacao, String cfop, String naturezaoper, String dest_nome, String dest_pessoa, String dest_doc, String dest_end, String dest_cidade, 
			String dest_bairro, String dest_cep, String dest_uf, String dest_ie, String dest_entrega, String dest_fone, String trans_frete, String trans_espec, 
			String trans_qtd, String tipo_es, String ajudante, int id_clidepend, String reserva_box,  String timestamp, int id_loja, int id_lojaori,
			String emissao, String fatura_data, String data_prev, String data_saida,String dt_cancela, double vl_pis, double vl_cofins, String dest_nro,
			String dest_compl, String prot_id, String chave, String status_nfe, String tipo_frete, int id_uf, int id_municip, String dest_mail, String entrega,
			int id_transf, String coo, double vl_despadu, double vl_ii, int id_frete, double qtd_frete, int sincronizado) {
		ContentValues valores = new ContentValues();
		valores.put(ID, id);
		valores.put(ID_CLIENTE, id_cliente);
		valores.put(ID_FORMAPAG, id_formapag);
		valores.put(NUMERO, numero);
		valores.put(FATURA_OPER, fatura_oper);
		valores.put(FATURA_NRO, fatura_nro);
		valores.put(ENT_FUTURA, ent_futura);
		valores.put(VALOR, valor);
		valores.put(PED_CLI, ped_cli);
		valores.put(REGIAO, regiao);
		valores.put(HORARIO, horario);
		valores.put(RESPONSAVEL, responsavel);
		valores.put(STATUS, status);
		valores.put(DUPLICATA, duplicata);
		valores.put(RETORNO_OPER, retorno_oper);
		valores.put(RETORNO_NRNF, retorno_nrnf);
		valores.put(NUMERO_RETORNO, numero_retorno);
		valores.put(COD_MOVCXA, cod_movcxa);
		valores.put(VALOR_FRETE, valor_frete);
		valores.put(VALOR_COMIS, valor_comis);
		valores.put(VL_CLI, vl_cli);
		valores.put(VINCULO_ZN, vinculo_zn);
		valores.put(CIMENTO, cimento);
		valores.put(VALOR_CUSTO, valor_custo);
		valores.put(ID_USUARIO, id_usuario);
		valores.put(ID_USUARIO_LIB, id_usuario_lib);
		valores.put(ID_TRANSP, id_transp);
		valores.put(ID_OBRA, id_obra);
		valores.put(OBS, obs);
		valores.put(NEGOCIACAO, negociacao);
		valores.put(ICMS_BASE, icms_base);
		valores.put(ICMS_VALOR, icms_valor);
		valores.put(ICMS_BASE_ST, icms_base_st);
		valores.put(ICMS_VALOR_ST, icms_valor_st);
		valores.put(VL_PRODUTOS, vl_produtos);
		valores.put(VL_FRETE, vl_frete);
		valores.put(VL_SEGURO, vl_seguro);
		valores.put(VL_OUTRAS, vl_outras);
		valores.put(VL_IPI, vl_ipi);
		valores.put(VL_BASEIPI, vl_baseipi);
		valores.put(NF_FRETE, nf_frete);
		valores.put(ID_FORNEC, id_fornec);
		valores.put(ID_NF_ORIGINAL, id_nf_original);
		valores.put(ID_NF_ENTRADA, id_nf_entrada);
		valores.put(ID_VENDA_PAI, id_venda_pai);
		valores.put(ID_OPERACAO, id_operacao);
		valores.put(CFOP, cfop);
		valores.put(NATUREZAOPER, naturezaoper);
		valores.put(DEST_NOME, dest_nome);
		valores.put(DEST_PESSOA, dest_pessoa);
		valores.put(DEST_DOC, dest_doc);
		valores.put(DEST_END, dest_end);
		valores.put(DEST_CIDADE, dest_cidade);
		valores.put(DEST_BAIRRO, dest_bairro);
		valores.put(DEST_CEP, dest_cep);
		valores.put(DEST_UF, dest_uf);
		valores.put(DEST_IE, dest_ie);
		valores.put(DEST_ENTREGA, dest_entrega);
		valores.put(DEST_FONE, dest_fone);
		valores.put(TRANS_FRETE, trans_frete);
		valores.put(TRANS_ESPEC, trans_espec);
		valores.put(TRANS_QTD, trans_qtd);
		valores.put(TIPO_ES, tipo_es);
		valores.put(AJUDANTE, ajudante);
		valores.put(ID_CLIDEPEND, id_clidepend);
		valores.put(RESERVA_BOX, reserva_box);
		valores.put(TIMESTAMP, timestamp);
		valores.put(ID_LOJA, id_loja);
		valores.put(ID_LOJAORI, id_lojaori);
		valores.put(EMISSAO, emissao);
		valores.put(FATURA_DATA, fatura_data);
		valores.put(DATA_PREV, data_prev);
		valores.put(DATA_SAIDA, data_saida);
		valores.put(DT_CANCELA, dt_cancela);
		valores.put(VL_PIS, vl_pis);
		valores.put(VL_COFINS, vl_cofins);
		valores.put(DEST_NRO, dest_nro);
		valores.put(DEST_COMPL, dest_compl);
		valores.put(PROT_ID, prot_id);
		valores.put(CHAVE, chave);
		valores.put(STATUS_NFE, status_nfe);
		valores.put(TIPO_FRETE, tipo_frete);
		valores.put(ID_UF, id_uf);
		valores.put(ID_MUNICIP, id_municip);
		valores.put(DEST_MAIL, dest_mail);
		valores.put(ENTREGA, entrega);
		valores.put(ID_TRANSF, id_transf);
		valores.put(COO, coo);
		valores.put(VL_DESPADU, vl_despadu);
		valores.put(VL_II, vl_ii);
		valores.put(ID_FRETE, id_frete);
		valores.put(QTD_FRETE, qtd_frete);
		valores.put(SINCRONIZADO, sincronizado);

		String[] whereAgrs = {Integer.toString(id)};
		int retorno = boreodao.getWritableDatabase().update(NOME_TABELA, valores, ID+" = ?", whereAgrs);
		boreodao.close();
		return retorno;
	}

	public ArrayList<Vendas> selectVendas() {
		ArrayList<Vendas> c = cursorToArray(boreodao.getReadableDatabase().rawQuery("SELECT * FROM "+NOME_TABELA+" ORDER BY "+ID+" DESC", null));
		boreodao.close();
		return c;
	}

	public ArrayList<Vendas> selectVendasPorId(int id_venda) {
		ArrayList<Vendas> c = cursorToArray(boreodao.getReadableDatabase().rawQuery("SELECT * FROM "+NOME_TABELA+" WHERE "+ID+" = "+id_venda+" ORDER BY "+ID+" DESC", null));
		boreodao.close();
		return c;
	}

	public ArrayList<Vendas> selectVendasNaoSincronizados() {
		ArrayList<Vendas> c = cursorToArray(boreodao.getReadableDatabase().rawQuery("SELECT * FROM "+NOME_TABELA+" WHERE "+SINCRONIZADO+" = 0 ORDER BY "+ID+" DESC "+"LIMIT 5", null));
		boreodao.close();
		return c;
	}

	public ArrayList<Vendas> selectVendasSincronizados() {
		ArrayList<Vendas> c = cursorToArray(boreodao.getReadableDatabase().rawQuery("SELECT * FROM "+NOME_TABELA+" WHERE "+SINCRONIZADO+" = 1 ORDER BY "+ID+" DESC", null));
		boreodao.close();
		return c;
	}

	public ArrayList<Vendas> ultimaVenda() {
		ArrayList<Vendas> c = cursorToArray(boreodao.getReadableDatabase().rawQuery("SELECT * FROM "+NOME_TABELA+" WHERE "+ID+" = (SELECT MAX("+ID+") FROM "+NOME_TABELA+") AND "+SINCRONIZADO+" = 0;", null));
		boreodao.close();
		return c;
	}

	public ArrayList<Vendas> selectVendasPorCliente(String cliente, int sincronizado) {

		ArrayList<Vendas> c = cursorToArray(boreodao.getReadableDatabase().rawQuery("SELECT * FROM "+NOME_TABELA+" V " +
																					"LEFT JOIN CLIENTES C ON (C._ID=V.ID_CLIENTE) " +
																					"WHERE C.NOME LIKE '"+cliente+"%' AND "+SINCRONIZADO+" = "+sincronizado+
																					" ORDER BY V."+ID+" DESC", null));
		boreodao.close();
		return c;
	}

	public ArrayList<Vendas> ultimasVendas(int sincronizado) {
		ArrayList<Vendas> c = cursorToArray(boreodao.getReadableDatabase().rawQuery("SELECT * FROM "+NOME_TABELA+" WHERE "+SINCRONIZADO+" = "+sincronizado+" ORDER BY emissao, horario"+" LIMIT 5", null));
		boreodao.close();
		return c;
	}
	
	public void excluirVendaPorId(int id_venda) {
		boreodao.getReadableDatabase().delete(NOME_TABELA,ID+"="+id_venda,null);
		boreodao.close();
	}

	public void excluirTodasVendas() {
		boreodao.getReadableDatabase().delete(NOME_TABELA, null, null);
	}

	public String mudarParaSincronizada(int id_venda) {
		String retorno = "";
		ContentValues valores = new ContentValues();
		valores.put(SINCRONIZADO, 1);
		String[] whereArgs = {Integer.toString(id_venda)};
		int update = boreodao.getWritableDatabase().update(NOME_TABELA, valores, ID+" = ?", whereArgs);
		if(update != 1)
			retorno = "erro";
		else
			retorno = "ok";
		boreodao.close();
		return retorno;
	}

	private ArrayList<Vendas> cursorToArray(Cursor c){
		ArrayList<Vendas> vendas = new ArrayList<Vendas>();
		while (c.moveToNext()) {
			vendas.add(new Vendas(c.getInt(0), c.getInt(1), c.getInt(2), c.getString(3), c.getString(4), c.getString(5), c.getDouble(6), c.getDouble(7), c.getString(8),
					c.getString(9), c.getString(10), c.getString(11), c.getString(12), c.getString(13), c.getString(14), c.getString(15), c.getString(16), c.getString(17),
					c.getDouble(18), c.getDouble(19), c.getDouble(20), c.getString(21), c.getDouble(22), c.getDouble(23), c.getInt(24), c.getInt(25), c.getInt(26),
					c.getInt(27), c.getString(28), c.getString(29), c.getDouble(30), c.getDouble(31), c.getDouble(32), c.getDouble(33), c.getDouble(34), c.getDouble(35),
					c.getDouble(36), c.getDouble(37), c.getDouble(38), c.getDouble(39), c.getString(40), c.getInt(41), c.getInt(42), c.getInt(43), c.getInt(44), c.getInt(45),
					c.getString(46), c.getString(47), c.getString(48), c.getString(49), c.getString(50), c.getString(51), c.getString(52), c.getString(53), c.getString(54),
					c.getString(55), c.getString(56), c.getString(57), c.getString(58), c.getString(59), c.getString(60), c.getString(61), c.getString(62), c.getString(63),
					c.getInt(64), c.getString(65), c.getString(66), c.getInt(67), c.getInt(68), c.getString(69), c.getString(70), c.getString(71), c.getString(72), c.getString(73),
					c.getDouble(74), c.getDouble(75), c.getString(76), c.getString(77), c.getString(78), c.getString(79), c.getString(80), c.getString(81), c.getInt(82),
					c.getInt(83), c.getString(84), c.getString(85), c.getInt(86), c.getString(87), c.getDouble(88), c.getDouble(89), c.getInt(90), c.getDouble(91), c.getInt(92)));
		}
		return vendas;
	}
}
